package models

import (
	"blog_go/models/ctype"
)

// 用户表
type UserModel struct {
	MODEL
	NickName   string           `gorm:"size:36"`                   // 昵称
	UserName   string           `gorm:"size:36"`                   // 用户名
	Password   string           `gorm:"size:128"`                  // 密码
	Avatar     string           `gorm:"size:256"`                  // 头像
	Email      string           `gorm:"size:128"`                  // 邮箱
	Tel        string           `gorm:"size:18"`                   // 电话
	Addr       string           `gorm:"size:64"`                   // 地址
	Token      string           `gorm:"size:64"`                   // 其他平台唯一id
	IP         string           `gorm:"size:20"`                   // ip地址
	Role       ctype.Role       `gorm:"type:int;size:4;default:1"` // 权限 默认tinyint(4)
	SignStatus ctype.SignStatus `gorm:"type:int;size:4"`           // 注册来源
	// 以下非表结构
	ArticleModels []ArticleModel `gorm:"foreignKey:UserID"`                                                   // 发布的文章列表
	CollModels    []ArticleModel `gorm:"many2many:user2_coll;joinForeignKey:UserID;JoinReferences:ArticleID"` // 收藏的文章列表
}

func (UserModel) TableName() string {
	return "user"
}
